release: promote investigations, billing, and self-hosting to production - #789
Conversation
* feat(ai): measure identified profile activation retention * fix(ai): reject unsupported retention grouping
* feat(insights): measure saved activation and return outcomes * style(insights): format measurement regression cases * fix(insights): preserve measured cohort findings through publication * fix(dashboard): omit unscoped cohort definition link * fix(insights): finish from sufficient evidence without redundant reads * Revert "fix(insights): finish from sufficient evidence without redundant reads" This reverts commit b931b4d.
…gations (#776) * fix(rpc): validate inherited measurement bindings * style(dashboard): apply measurement typography utilities * docs(ci): require resolved PR feedback before merging * fix(insights): retire obsolete retention observations * test(insights): exercise retirement with real cache invalidation * test(insights): close test resources and isolate integration selection
* fix(insights): keep evidence claims with their sources * fix(insights): decide publication from cited evidence * fix(dashboard): label investigation resolutions as conclusions * fix(insights): verify saved recovery checks without model turns
…#779) * fix(insights): preserve native retention evidence through publication * fix(insights): resolve unexplained cohort findings without speculative followups * fix(insights): reject conflicting and misattributed retention evidence * test(insights): isolate retention scope and persistent conflict checks * test(insights): simplify retention evidence fixtures
* fix(insights): validate tool-supplied retention comparisons * fix(insights): avoid redundant retention finish repairs
* feat(insights): add grounded activation-date comparisons * fix(insights): keep conflicting cohort snapshots private * fix(insights): preserve complete retention findings * test(shared): follow cohort iteration style * fix(insights): align retention copy with the brief budget
* feat(insights): define fixed investigation pricing terms * refactor(ai): separate usage telemetry from credit billing * docs(insights): define completed investigation billing and included replies * feat(insights): retain evidence for included clarifications * feat(insights): reserve and settle fixed investigation units * feat(dashboard): add fixed investigation purchases and billing terms * fix(insights): include preparation in fixed investigation pricing * fix(insights): require scoped measurements for completed answers * fix(insights): clarify included repair verification * fix(insights): preserve exact saved measurement scope in replies * fix(api): protect investigation grants across checkout shapes * test(api): exercise investigation purchases through request handling * fix(insights): retain native readings in mixed evidence claims * docs(insights): state included verification paths * feat(insights): include saved-evidence replies in investigation units * feat(insights): charge completed investigations and include saved checks * test(insights): preserve free terminal questions across scan retries * fix(insights): retain only scoped measurement evidence * fix(insights): bind new analysis to its accepted price * fix(insights): make saved evidence limits explicit * refactor(api): type investigation checkout JSON * test(api): validate invalid investigation replies over RPC * test(api): use a billing spy compatible with Bun and Vitest
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
* fix(ai): expose cross-category query matches with compact discovery * fix(ai): retain full query contracts after discovery evaluation
|
The latest updates on your projects. Learn more about Unkey Deploy
|
#788) * fix(dashboard): render native investigation allowances and prices * feat(rpc): define included monthly investigation allowances * feat(dashboard): separate monthly and purchased investigations * fix(api): bypass cache for expanded billing customers * feat(docs): publish monthly investigation allowances * fix(dashboard): use native investigation invoice prices * feat(dashboard): apply monthly investigation allowances and account terms * fix(rpc): describe included investigations and additional usage * fix(insights): verify accepted investigation overage price * feat(rpc): define included Databunny chat entitlement * feat(rpc): support investigation spending limits * refactor(docs): simplify included chat and investigation pricing * feat(api): include entitled Databunny chat without credit charges * feat(dashboard): include chat on current Autumn plans * fix(rpc): describe Autumn overage limits as units * fix(dashboard): simplify included chat billing and collapse controls * docs(billing): record native overage limit units * fix(dashboard): reserve space for investigation billing details * fix(dashboard): show configured plan prices and concise terms * docs(billing): record schema and deployment prerequisites * fix(dashboard): retain management of legacy credit add-ons * fix(rpc): preserve billing controls when customer reads fail * docs(billing): keep billing state in Autumn * refactor(docs): simplify public pricing plans and comparisons * refactor(dashboard): simplify native pricing cards and comparison * fix(docs): align pricing button fills with corner frames * style(docs): add restrained pricing interactions * style(docs): disable pricing button border flicker * fix(dashboard): add billing feedback and stable loading buttons * refactor(dashboard): remove unused billing control options * refactor(api): remove obsolete agent credit access wrapper * refactor(insights): remove unused coverage data and dead branch * fix(docs): lead pricing with included investigations * fix(ci): support older Node in billing browser tests * test(api): align billing email copy expectations * refactor(insights): keep investigation billing entirely in Autumn * fix(dashboard): restore pricing plan card styling * fix(docs): restore visible pricing comparison table * fix(insights): retry native settlement before completing jobs
Collapse the two warn paths into one, pass null name and avatar through as Dub accepts them, and inline the one-use cookie read.
This comment has been minimized.
This comment has been minimized.
|
* fix(dashboard): honor self-host origins and onboarding settings * fix(dashboard): skip first-party tracking when self-hosted * test(dashboard): simplify CSP environment setup * fix(dashboard): use configured tracking snippets in AI setup prompts * test(dashboard): cover self-host attribution after staging rebase * fix(dashboard): skip signup attribution when self-hosted
* fix(api): honor self-hosted email sender settings * refactor(api): keep self-host setup in its own change * test(api): reuse outbound alarm coverage * test(api): isolate alarm sender regression cases
… sibling files Drops constant snapshots, mock-echo cases, library-behaviour tests, and duplicates across apps and packages; merges same-module test files; adds the dashboard test script; drops the phantom notifications integration script; switches packages/ai tests from vitest to bun:test; fixes the stale website settings expectation.
Five integration files were pinned to throwaway database ports and ran nowhere. They now use the shared Postgres, Redis, and ClickHouse services and are wired into test:integration scripts and CI. Removes the phantom rpc test script entry and adds a test script to packages/auth.
lint:policies now rejects scratch loopback ports in tests, vitest imports in bun packages (and vice versa), packages with unit tests but no test script, and test scripts naming missing files.
The guarded status update can affect no rows when recovery or another worker moved the reply while the model request was in flight. Return skipped in that case, matching the analysis path, instead of invalidating caches and delivering a result the record never took.
* fix(basket): bypass Kafka across self-host delivery services * fix(uptime): retain self-hosted checks until storage recovers
* fix(rpc): remove hosted billing requirements from self-hosting * fix(rpc): check self-hosted AI before queuing replies * test(rpc): isolate missing AI credential cases * test(rpc): align self-host coverage with repository style * test(dashboard): isolate environment-sensitive unit tests * refactor(dashboard): clarify self-hosted investigation actions
* fix(rpc): simplify self-host runtime defaults * fix(env): keep self-host URL defaults local * test(ai): use SDK types for self-host telemetry mocks * fix(dashboard): pass SELFHOST into the browser build as NEXT_PUBLIC_SELFHOST * test(dashboard): verify self-hosted browser URL defaults * test(links): isolate environment module mocks
* fix(db): provide containerized self-host schema initialization * fix(ci): simplify self-host Docker startup * refactor(ci): trim self-host setup repetition * docs(ci): move onboarding copy to its own PR * fix(ci): stop forwarding billing credentials to self-hosted services * fix(ci): simplify self-host environment setup * fix(dashboard): hide unconfigured self-host status links * fix(dashboard): preserve hosted status URL defaults * refactor(dashboard): keep one self-host build argument
* docs(docs): simplify self-hosting and contributor guides * docs(docs): correct self-host setup and upgrade guidance * docs(docs): document simpler self-host defaults * docs(docs): use the short self-host env template * docs(docs): clarify optional self-host status pages * docs(docs): recommend supported Node releases * docs(docs): enable local development without billing keys * docs(repo): list the status app build-time URLs for self-hosting
Removes the test and spec exclusions from biome.json, adds a test-file override for rules that are noise in tests (useAwait, noNonNullAssertion, useTopLevelRegex, noNamespaceImport, noBitwiseOperators, noBannedTypes, noThenProperty, noTemplateCurlyInString, useYield, useThrowOnlyError), declares the Bun global, and applies the resulting fixes across 228 test files.
Promote the reviewed investigation, conversation, billing, and self-hosting release from staging. Business includes 100 investigations/month for $299; Scale includes 500 for $799; additional completed investigations cost $1. New plan versions include ordinary Databunny chat. Restore the older pricing comparison/table styling and remove conflicting credit offers for included-chat accounts while preserving existing customer terms and paid balances.
Autumn owns investigation reservations, settlement, monthly allowances, and overages. Completed product results and existing job recovery retry the original native hold without another model run or charge. This release has no Postgres investigation billing ledger or accepted-price field. Its database additions are ordinary evidence/reply fields only.
This is the full staged release: investigation and retention improvements (#771, #772, #774–#781), conversation tool/schema and reasoning fixes (#782), query discovery recovery (#783), the Balanced conversation default changing from Terra to Luna (#784), and billing/pricing changes (#786–#788). Public MCP clients still choose their own model. This is broader than a pricing copy deployment.
Self-hosting
This release includes #803, #804, #805, #806, #808, #814, #815, #816, and #823:
Combined checks cover fresh/repeated initialization, signup/login, website creation, ingestion, analytics, copied broker/billing keys, and organization permissions. A real Redis check covers delivery recovery beyond the old retry limit and graceful shutdown. The optional status app also passes a production build/start smoke with synthetic local URLs. Root lint, all 33 typecheck tasks, and all 29 test tasks pass.
Validation and promotion gates
Validation completed on the reviewed slices includes root lint, workspace types/tests, native SDK and actual API request regressions, isolated Insights billing/recovery integration tests, and desktop/mobile pricing checks. The settlement regression fails before the fix and recovers the original hold after an outage with one reservation, model call, and delivery. These tests used synthetic Autumn transport; live invoices, monthly resets, and authenticated checkout are not yet verified. Recheck final-head CI, staging deployments, and every review thread before promotion.
Schema readiness passed on September 17 at 08:39 UTC. Independent read-only metadata checks through API, API Staging, Insights, and Slack confirmed all four required product columns:
insight_observations.snapshotandinsight_replies.source_observation_id,intent, andassistant_text. Types, nullability, and theintentdefault match the expected schema. The earlier missing-column blocker is cleared.Promotion still requires final-head CI and review, compatible staging deployments, live billing validation, and the required main-branch approval. The automated staging soak covers API Staging and API/Basket health; dashboard, docs, Insights, and Slack need compatibility checks too. Verify compatible API, dashboard, docs, Insights, and Slack deployments before the targeted live Autumn catalog sync. Catalog publication and the requested account activation are separate follow-up operations; neither happens by merging this PR. Preserve legacy versions, balances, and the account's complimentary base price; do not mass-migrate customers.
After promotion, publish the platform release and verify all versioned service images, including init, on both architectures. Main pushes publish
edge; a published release supplies versioned images. Smoke-test Compose with the matching checkout and tag before announcing self-host availability.AI-assisted implementation and review under the maintainer workflow.